home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / geos-archive / GEOS-D64 / GeoThek Programme (19xx)(-)(de)[gt105a].d64 / dir repair (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  11KB  |  441 lines

  1. 100 REM !-----------------------------!
  2. 110 REM ! ARVEE'S DIRECTORY REPAIRMAN !
  3. 120 REM !                             !
  4. 130 REM !    C-1987  WHITAKER LABS    !
  5. 140 REM !                             !
  6. 150 REM !  BROUGHT TO YOU BY SCORMUS  !
  7. 160 REM !-----------------------------!
  8. 170 :
  9. 180 REM PROTECT GEOS FROM BASIC
  10. 190 IFPEEK(56)>126THENPOKE56,126:CLR
  11. 200 :
  12. 210 REM DIMS FLGS VARS CONSTNTS STRINGS
  13. 220 REM DIMENSIONS
  14. 230 DIM BF(23):REM BLKS FREE COMPUTED
  15. 240 DIM BD(20):REM DIR BLKS FOLLOWED
  16. 250 DIM M$(11):REM MSGS
  17. 260 DIM F$(7) :REM FILE NAMES
  18. 270 DIM BM(2) :REM BAM TEMP 0-7/8-F/10+
  19. 280 :
  20. 290 REM FLAGS
  21. 300 PE=0:REM PRNT ERR CHN 1=PRNT
  22. 310 IS=0:REM ILLEGAL SECTR
  23. 320 BD=0:REM BAD DIRECTORY
  24. 330 BB=0:REM BAD BLOCK
  25. 340 BP=0:REM BAD POINTER
  26. 350 NF=0:REM DIR NOT FIXED
  27. 360 BT=0:REM OFF TR 18
  28. 370 :
  29. 380 REM VARIABLES
  30. 390 X=0:Y=0:T=0:REM LOOP VARS
  31. 400 TR=18:SE=0:REM DEFAULT TR/SE
  32. 410 TV=18:SV=0:REM TR/SE PNTR VAL
  33. 420 AL=55537 :REM COLOR POKE PSEUDO BASE
  34. 430 M =0:D=0 :REM MESSAGE #/# LINES DOWN
  35. 440 CF=0:BL=0:REM COMP/ACTUAL BLKS FREE
  36. 450 ND=0:E=0 :REM NEW DOS VERS
  37. 460 CT=0     :REM # OF MISALLOC BLKS
  38. 470 P =0     :REM BUFFER POINTER
  39. 480 :
  40. 490 REM STRINGS
  41. 500 A$="":B$="":C$="":D$="":REM TMP STR
  42. 510 WP$="":REM WRITE PROTECT
  43. 520 NL$=CHR$(0):REM NULL
  44. 530 L$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  45. 540 L2$=" [192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  46. 550 R1$=""
  47. 560 R2$="[156]"
  48. 570 :
  49. 580 REM GEOS SPECIFIC CONSTANTS
  50. 590 DA=33938:REM DISK TURBO FLG DRIVE A
  51. 600 DB=33939:REM DISK TURBO FLG DRIVE B
  52. 610 V2=49893:REM VERS 1.2 SETUP SYS
  53. 620 V3=49708:REM VERS 1.2/3 RESTART
  54. 630 VL=49158:REM GEOS BOOT & VERS # LOC
  55. 640 FORX=0TO8:REM CHECK FOR GEOSTOBOOT
  56. 650 GB$=GB$+CHR$(PEEK(VL+X)):REM STRING
  57. 660 NEXT:REM FOR POSS DESKTOP REENTRY
  58. 670 VE=PEEK(VL+X):REM GEOS VERS #
  59. 680 :
  60. 690 REM MESSAGES
  61. 700 M$(0)="[154]<< [208]RESS [203]EY [198]OR [205]ENU[160]>>"
  62. 710 M$(1)="[154]<< [208]RESS [203]EY [212]O [194]OOT >>"
  63. 720 M$(2)="[150]<< [215][193][210][206][201][206][199][160]!!![160][160][205][201][211][193][204][204][207][195][193][212][197][196] [194][204][207][195][203][211] >>"
  64. 730 M$(3)="<< [207]PERATION [193]BORTED .. [200]IT A [203]EY >>"
  65. 740 M$(4)="<< [215][193][210][206][201][206][199] !!!  [194][193][196][160][196][201][210][197][195][212][207][210][217] >>"
  66. 750 M$(5)="[150]<< [215][193][210][206][201][206][199] !!!  [194][193][196][160][197][206][196][160][208][212][210] >>"
  67. 760 M$(6)="<< [207]PERATION [198]AILED .. [210]ETRY >>"
  68. 770 M$(7)="[154]<< [208]RESS [203]EY FOR [205]ENU >>
  69. 780 M$(8)[178]"CONT<< (null)(null) (null)TATUS LENHANGED >>
  70. 790 M$(9)="<< [201][204][204][197][199][193][204] [207][198][198] [208][193][199][197] [196][201][210][197][195][212][207][210][217] [194][204][207][195][203] >>"
  71. 800 M$(10)="[150]<< [196][197][211][203][212][207][208][160][194][207][210][196][197][210] [200][193][211][160][194][197][197][206][160][197][210][193][211][197][196] >>"
  72. 810 M$(11)="<< [215][193][210][206][201][206][199] !!! [196][201][210][197][195][212][207][210][217][160][207][198][198][160][212][210][203][160]18 >>"
  73. 820 :
  74. 830 REM TITLE SCREEN & GET ROUTINE #
  75. 840 POKE53280,11:REM GREY BORDER
  76. 850 POKE53281, 0:REM BLACK SCREEN
  77. 860 :
  78. 870 PRINT"[147][146]        [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
  79. 880 [153]"        (null) CLRSTR$RIGHT$(null)VALLEN(null)(null)(null)(null)CLOSE(null)VAL(null)ATNRIGHT$(null)(null)ATN(null) (null)
  80. 890 PRINT"        [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]
  81. 900 [153]"         POKE(SYS(null)POKE)CONTRITE (null)ROTECT STR$ISK
  82. 910 PRINT"         [151]([158][213][151])[154]N [215]RITE [208]ROTECT
  83. 920 [153]"         POKE(SYSSTR$POKE)CONTESK PEEKORDER RIGHT$NFO
  84. 930 PRINT"         [151]([158][193][151])[154]NALYZE [212]RACK 18
  85. 940 [153]"         POKE(SYS(null)POKE)CONTEPAIR STR$IRECTORY
  86. 950 PRINT"             [193]LLOCATE TRACK 18
  87. 960 [153]"             ASCOLLOW DIR CHAIN
  88. 970 PRINT"             [198]IX LAST POINTER
  89. 980 [153]"             ASCREE UNUSED BLKS
  90. 990 PRINT"         [151]([158][194][151])[154]ASIC
  91. 1000 [153]"         POKE(SYSCHR$POKE)CONTVAL(null)(null)
  92. 1010 :
  93. 1020 POKE198,0:WAIT198,1:GETA$
  94. 1030 IFA$="D"THEN 3750:REM GEOS INFO
  95. 1040 IFA$="A"THEN 2040:REM ANALYZE
  96. 1050 IFA$="R"THEN 2910:REM REPAIR
  97. 1060 IFA$="W"THEN 3500:REM WRITE PROT
  98. 1070 IFA$="U"THEN 3510:REM UN WP
  99. 1080 IFA$="B"THEN PRINT"[145][145][145][154]":END
  100. 1090 IFA$="G"THEN 1110:REM GO GEOS
  101. 1100 GOTO1020
  102. 1110 REM GEOS DESKTOP RETURN
  103. 1120 IF GB$<>"GEOS BOOT" THEN 1170
  104. 1130 POKE DA,0:POKE DB,0:REM TURBO OFF
  105. 1140 IF VE=18 THEN SYS V2:SYS V3
  106. 1150 IF VE=19 THEN SYS V3
  107. 1160 REM BOOT GEOS
  108. 1170 PRINT"[147]       [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  109. 1180 PRINT  "       [221] [156][201][206][211][197][210][212][160][199][197][207][211][160][194][207][207][212][160][196][201][211][203] [221]"
  110. 1190 PRINT  "       [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]"
  111. 1200 M=1:D=15:GOSUB1260
  112. 1210 PRINT"[147]LOAD"CHR$(34)"GEOS"CHR$(34)",8,1"
  113. 1220 PRINT "RUN
  114. 1230 [151]198,3:[151]631,19:[151]632,13:[151]633,13:[144]
  115. 1240 :
  116. 1250 [143] FLASH MESSAGE # M DOWN D
  117. 1260 [153]"";:[129]X[178]0[164]D:[153]"";:[130]
  118. 1270 [151]198,0
  119. 1280 [129]X[178]1[164]2
  120. 1290 [153]"WAITON"
  121. 1300 [139]X[178]2[167][153]"";
  122. 1310 [153] M$(M);
  123. 1320 [129]Y[178]1[164]100:[161]A$
  124. 1330 [139] A$[178]""[167] [130]:[130]:[137]1280
  125. 1340 [139] A$[178]"_"[167] [138]
  126. 1350 [153]"WAIT";:[142]
  127. 1360 :
  128. 1370 [143] CHECK DEV PRES
  129. 1380 [160]15:[159]15,8,15:[160]15
  130. 1390 [139] ST [178] 0 [167] [142]
  131. 1400 [153]" STR$EVICE (null)OT (null)RESENT"
  132. 1410 M[178]3:D[178]23:[141]1260:[138]
  133. 1420 :
  134. 1430 [143] INITIALIZE
  135. 1440 [141]1660:[159]15,8,15,"I0:":[142]
  136. 1450 :
  137. 1460 [143] CHECK ERROR CHANNEL
  138. 1470 [143] CLOSE ALL/OPEN/READ/PRINT
  139. 1480 [141]1660:[159]15,8,15
  140. 1490 [143] READ/PRINT
  141. 1500 PE[178]1:[143] PRNT FLG
  142. 1510 [143] READ ONLY
  143. 1520 [132]15,EN$,EM$,ET$,ES$
  144. 1530 [139]EN$[179][177]"00"[167][153]:[153]"";
  145. 1540 [139] PE[178]1 [167][153]EN$","EM$","ET$","ES$:PE[178]0
  146. 1550 [139] EN$[178]"00"[167] [142]
  147. 1560 [137]1410
  148. 1570 :
  149. 1580 [143] INIT FOR IO
  150. 1590 [141]1380:[143] CHK DEVICE PRESENT
  151. 1600 [141]1440:[143] INITIALIZE DRIVE
  152. 1610 [141]1520:[143] READ ERR
  153. 1620 [141]1690:[143] ALLOC DISK BUFFER
  154. 1630 [142]
  155. 1640 :
  156. 1650 [143] DONE WITH IO
  157. 1660 [129]X[178]1[164]15:[160]X:[130]:[142]
  158. 1670 :
  159. 1680 [143] ALLOCATE A DISK BUFFER
  160. 1690 [159]2,8,2,"#":[142]
  161. 1700 :
  162. 1710 [143] READ  BUFFER
  163. 1720 [152]15,"U1";2;0;TR;SE:[142]
  164. 1730 :
  165. 1740 [143] WRITE BUFFER
  166. 1750 [152]15,"U2";2;0;TR;SE:[142]
  167. 1760 :
  168. 1770 [143] BUFFER POINTER
  169. 1780 [152]15,"B-P";2;P:[142]
  170. 1790 :
  171. 1800 [143] CHECK IF SECTOR IS LEGAL
  172. 1810 IS[178]0:[143] SECTOR IS OK
  173. 1820 [139] SE[179]0 [167] 1880
  174. 1830 [139] TR[179]0 [167] 1880
  175. 1840 [139] TR[179]18 [167] [139] SE[179]21 [167] [142]
  176. 1850 [139] TR[179]25 [167] [139] SE[179]19 [167] [142]
  177. 1860 [139] TR[179]31 [167] [139] SE[179]18 [167] [142]
  178. 1870 [139] TR[179]36 [167] [139] SE[179]17 [167] [142]
  179. 1880 IS[178]1:[143] SECTOR NOT OK
  180. 1890 [142]
  181. 1900 :
  182. 1910 [143] JOB QUEUE
  183. 1920 [152]15,"M-W"[199](8)[199](0)[199](2)[199](TR)[199](SE)
  184. 1930 [152]15,"M-W"[199](1)[199](0)[199](1)[199](JOB)
  185. 1940 [129]T[178]0[164]500
  186. 1950 [151]53280,([194](53280)[170]1)[175]15
  187. 1960 [152]15,"M-R"[199](1)[199](0)
  188. 1970 [161]#15,E$:E[178][198](E$[170]NL$)
  189. 1980 [139] E[177]127 [167] [130] T
  190. 1990 [151]53280,11:
  191. 2000 [139] E[178]1 [167] [142]
  192. 2010 [160]15:M[178]6:D[178]23:[141]1260:[138]
  193. 2020 :
  194. 2030 [143] DISPLAY TRACK 18 BAM
  195. 2040 [153]"LOAD       ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^"
  196. 2050 [153]"       (null) CLRATN(null)ATN(null)(null)(null)VAL STR$RIGHT$(null)VALLEN(null)(null)(null)(null)CLOSEPEEKATN(null) (null)"
  197. 2060 [153]"       /TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPCONT"
  198. 2070 [141]1590:[143] INIT IO
  199. 2080 BD[178]0:BP[178]0:BB[178]0:BT[178]0:[143] SET FLAGS
  200. 2090 CF[178]0:[143] COMPUTED FREE BLKS
  201. 2100 TR[178]18:SE[178]0:[143] DEFAULTS
  202. 2110 [143] INPUT BAM INFO
  203. 2120 [153]"(null)EADING PEEKATN(null) ........ ";
  204. 2130 [141]1720:[143] U1
  205. 2140 [141]1500:[143] READ/PRINT
  206. 2150 P[178]2:[141]1780:[143] B-P
  207. 2160 [161]#2,A$:ODV[178][198](A$[170]NL$)
  208. 2170 WP$[178]"(null)(null)":[139] ODV[178]65 [167] WP$[178]"(null)ASCASC"
  209. 2180 P[178]72:[141]1780:[143] B-P
  210. 2190 [161]#2,A$,B$,C$,D$
  211. 2200 [141]1660:[143] DONE IO
  212. 2210 BL[178][198](A$[170]NL$)      :[143] FREE BLKS
  213. 2220 BM(0)[178][198](B$[170]NL$)   :[143] BAM  0- 7
  214. 2230 BM(1)[178][198](C$[170]NL$)   :[143] BAM  8-15
  215. 2240 BM(2)[178][198](D$[170]NL$)   :[143] BAM 16-18
  216. 2250 [143] COMPUTE/DISP BLKS FREE
  217. 2260 [129]X[178]0[164]2:[129]Y[178]0[164]7
  218. 2270 BF( (8[172]X)[170]Y )[178](BM(X) [175] 2[174]Y)[173]2[174]Y
  219. 2280 [130]Y
  220. 2290 [130]X
  221. 2300 [153]"ONONONON "L$L$
  222. 2310 [153]"CONT    (null)RACK 18 PEEKATN(null)      PEEKLOCKS  LENOMPUTED"
  223. 2320 [153]" 0....5....0....5..8   ASCREE     ASCREE"
  224. 2330 [153]" ";
  225. 2340 [129]X[178]0[164]18:
  226. 2350 [139] BF(X) [178] 0 [167] [153] "*";:[130]:[137]2380
  227. 2360 CF[178]CF[170]1
  228. 2370 [153]"-";:[130]
  229. 2380 [153]"   ";:[139]BL[179]10[167][153]" ";
  230. 2390 [153]BL;
  231. 2400 [153]"CMD      ";
  232. 2410 [139]CF[179]10[167][153]" ";
  233. 2420 [153]CF"CMD   "
  234. 2430 [139] CF[178]BL [167] 2450
  235. 2440 BD[178]1:[153]"ONONONON "L$""L$""
  236. 2450 [153]" "L$;:[139]BD[178]1[167][153]"";:
  237. 2460 [153]L$
  238. 2470 TV[178]18:SV[178]0 :[143] 1ST BLK
  239. 2480 [141]1590:[143] INIT IO
  240. 2490 [153]"CONT (null)(null)  (null)VAL    (null)OINTER
  241. 2500 PRINTL2$
  242. 2510 SE=SV:TR=TV:IFNF=1THEN2710
  243. 2520 IF TV=0 THEN 2710
  244. 2530 REM CHAIN NEXT
  245. 2540 NF=0
  246. 2550 GOSUB1720:REM U1
  247. 2560 GOSUB1520:REM READ ERR
  248. 2570 P=0:GOSUB1780:REM B-P
  249. 2580 GET#2,TR$,SE$
  250. 2590 TV=ASC(TR$+NL$)
  251. 2600 SV=ASC(SE$+NL$)
  252. 2610 GOSUB1810:NF=IS:REM CHK LEGAL SECTOR
  253. 2620 BD(SE)=1:PRINT"[154]";
  254. 2630 IFBF(SE)<>0THENPRINT"";:BD=1:BB=1:POKEAL+SE,2
  255. 2640 IF TV>0 OR SV=255 THEN 2660
  256. 2650 PRINT""R1$"_[194][193][196] [208][212][210][145]":BP=1:BB=0
  257. 2660 IFTR<>18THENIFTR<>0THENBT=1:PRINT" "L$"[157][157]  ":GOTO2680
  258. 2670 IFBBTHENPRINTR1$"_[193][204][204][207][195][193][212][197][145]":BB=0
  259. 2680 PRINTTR;SE,TV;SV
  260. 2690 IF TV=0 THEN PRINTL2$
  261. 2700 GOTO2510
  262. 2710 GOSUB1660:REM DONE IO
  263. 2720 REM DISPLAY MISALLOC BLKS
  264. 2730 FORX=0TO18:IF BD(X)=1THEN 2810
  265. 2740 IF BF(X)>0 THEN 2810
  266. 2750 CT=CT+1:IFCT>14THEN2800
  267. 2760 PRINT""R2$"[213][206][213][211][197][196][160][211][197][195][212][207][210][211]
  268. 2770 [153]R2$"ATN(null)VALCLOSEATN(null)(null)(null)LENATN(null)VALSTR$ONON
  269. 2780 FORY=0TOCT:PRINT:NEXT
  270. 2790 PRINTR2$"[211]ECTOR " X"[145]"
  271. 2800 POKE AL+X,2
  272. 2810 NEXTX
  273. 2820 PRINT"[151][215][208]"WP$
  274. 2830 REM WHICH MSG
  275. 2840 M=0:IF BD=1 THEN M=4:REM BAD DIR
  276. 2850 IF CT>0 THEN M=2:REM MISALOC BLKS
  277. 2860 IF BP=1 THEN M=5:REM BAD END PTR
  278. 2870 IF BT=1 THEN M=11:REM DIR OFF TRK
  279. 2880 D=23:GOSUB1260:RUN
  280. 2890 :
  281. 2900 REM FIX DIR
  282. 2910 PRINT"[147]    [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
  283. 2920 [153]"    (null) CLRASC(null)(null)(null)(null)(null)RIGHT$(null)CHR$CLOSESTR$RIGHT$(null)VALLEN(null)(null)(null)(null) (null)
  284. 2930 PRINT"    [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
  285. 2940 TR[178]18:SE[178]0
  286. 2950 [141]1590:[143] INIT IO
  287. 2960 :
  288. 2970 BF(0)[178]1
  289. 2980 [141]1720:[143] U1
  290. 2990 [141]1520:[143] READ ERR
  291. 3000 P[178]0:[141]1780:[143] B-P
  292. 3010 [161]#2,TR$,SE$
  293. 3020 TV[178][198](TR$[170]NL$)
  294. 3030 SV[178][198](SE$[170]NL$)
  295. 3040 [139]TV[178]18[167]BF(SV)[178]1:SE[178]SV:[137]2980
  296. 3050 [139] TV[179][177]0 [167] BT[178]1:NF[178]1:[137]3380
  297. 3060 [139] SV[178]255 [167] [153]"(null)AST STR$IR (null)ECTOR (null)(null)   ";:[137]3110
  298. 3070 [153]               "ASCIXING (null)AST (null)ECTOR . ";
  299. 3080 P[178]1:[141]1780:[143] B-P
  300. 3090 [152]2,[199](255);
  301. 3100 P[178]0:[141]1780:[141]1750:[143] B-P/U2
  302. 3110 [141]1500:[143] READ/PRINT
  303. 3120 :
  304. 3130 [143] ALLOC ALL BLKS TR 18
  305. 3140 TR[178]18:SE[178]0:[141]1590:[143] REINIT IO
  306. 3150 [153]"(null)EADING PEEKATN(null) ........ ";
  307. 3160 [141]1720:[143] U1
  308. 3170 [141]1500:[143] READ/PRINT
  309. 3180 P[178]72:[141]1780:[143] B-P
  310. 3190 [152]2,NL$;NL$;NL$;NL$;:[143] 0 BAM
  311. 3200 P[178]0:[141]1780:[143] B-P
  312. 3210 [153]"(null)RITING PEEKATN(null) ........ ";
  313. 3220 [141]1750:[143] U2
  314. 3230 [141]1500:[143] READ/PRINT
  315. 3240 [153]"     ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^"
  316. 3250 [153]"     (null) CLR(null)(null)(null) 18 ATN(null)(null)(null)LENATN(null)VALSTR$ (null)
  317. 3260 PRINT"     [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]"
  318. 3270 :
  319. 3280 REM FREE UNUSED BLOCKS
  320. 3290 GOSUB1590:REM REINIT IO
  321. 3300 PRINT"[196]EALLOCATING BLKS .. ";
  322. 3310 FORX=0TO18
  323. 3320 IF BF(X) THEN 3360
  324. 3330 PRINT#15,"B-F";0;18;X
  325. 3340 INPUT#15,EN,EM$,ET,ES:REM ERR CHN
  326. 3350 IF EN$<>"00" THEN PRINT "[197]RROR IN [211]ECTOR"X:GOSUB1550:NF=1
  327. 3360 NEXTX
  328. 3370 GOSUB1480:REM CLOSE/OPEN/READ/PRINT
  329. 3380 GOSUB1660:REM DONE IO
  330. 3390 IF NF THEN 3440
  331. 3400 PRINT"    [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
  332. 3410 [153]"    (null) CLRSTR$RIGHT$(null)VALLEN(null)(null)(null)(null)CLOSE(null)VAL(null)ATNRIGHT$(null)VALSTR$ (null)
  333. 3420 PRINT"    [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
  334. 3430 M[178]7:D[178]21:[141]1260:[138]
  335. 3440 [153]"     ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^
  336. 3450 PRINT"     [221] [156][210][197][208][193][201][210][211] [198][193][201][204][197][196] ! [221]
  337. 3460 [153]"     /TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPCONT
  338. 3470 M=6:D=21:M=M+BT*5:GOSUB1260:RUN
  339. 3480 :
  340. 3490 REM EDIT DOS VERSION
  341. 3500 NDV=66:GOTO3520:REM WP ON
  342. 3510 NDV=65:REM WRITE PROT OFF
  343. 3520 PRINT"[147]        [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
  344. 3530 [153]"        (null) CLRVALSTR$RIGHT$(null)RIGHT$(null)CHR$CLOSESTR$(null)(null)CLOSE(null)VAL(null)(null)RIGHT$(null)(null) (null)
  345. 3540 PRINT"        [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
  346. 3550 [143] NDV=NEW DOS VERSION 1541 => A
  347. 3560 [143] WP OFF=65  ON=66
  348. 3570 [141]1590:[143] INIT IO
  349. 3580 TR[178]18:SE[178]0       :[143] BAM TRACK
  350. 3590 JOB[178]176:[141]1920:[143] SEEK
  351. 3600 JOB[178]128:[141]1920:[143] READ
  352. 3610 [152]15,"M-W"[199](2)[199](4)[199](1)[199](NDV)
  353. 3620 JOB[178]144:[141]1920:[143] WRITE
  354. 3630 [141]1660:[143] DONE IO
  355. 3640 [141]1590:[141]1660:[143] INIT/DONE IO
  356. 3650 M[178]8:D[178]14:[141]1260:[138]
  357. 3660 :
  358. 3670 [143] GET DOS WRITE PROTECT STATUS
  359. 3680 [141]1590:[143] INIT IO
  360. 3690 [152]15,"M-R"[199](1)[199](1)
  361. 3700 [161]#15,A$:WP$[178]"(null)(null)"
  362. 3710 [139] A$[178][199](65)[167] WP$[178]"(null)ASCASC"
  363. 3720 [141]1660:[143] DONE IO
  364. 3730 :
  365. 3740 [143] GET GEOS FORMAT HEADER STUFF
  366. 3750 [153]"LOAD        ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^
  367. 3760 PRINT"        [221] [156][199][197][207]-[196][201][211][203][160][201][206][198][207][210][205][193][212][201][207][206] [221]
  368. 3770 [153]"        /TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPCONT
  369. 3780 TR=18:SE=0:CT=0
  370. 3790 GOSUB1590:REM INIT IO
  371. 3800 GOSUB1720:REM U1
  372. 3810 P=171:GOSUB1780:REM B-P
  373. 3820 GET#2,A$,B$:REM TR/SE
  374. 3830 ID$="":FORX=173 TO 188:GET#2,C$:ID$=ID$+C$:NEXT:REM GEOSFORMAT STRING
  375. 3840 GET#2,D$:REM MASTER/BOOT/WORK FLG
  376. 3850 GOSUB1660:REM DONE IO
  377. 3860 IF LEFT$(ID$,4)="GEOS"THEN 3910
  378. 3870 PRINT"        [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
  379. 3880 [153]"        (null) CLR(null)(null)(null)CLOSEATN CHR$VAL(null)(null)CLOSE(null)(null)(null)VALCLOSESTR$RIGHT$(null)(null)CLOSE(null)
  380. 3890 PRINT"        [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
  381. 3900 M[178]0:D[178]12:[141]1260:[138]
  382. 3910 TR[178][198](A$[170]NL$):SE[178][198](B$[170]NL$)
  383. 3920 [153]"    CONT"ID$"  --  ";
  384. 3930 [139]D$[178]"B"[167][153]"SYSPEEKOOT STR$ISK
  385. 3940 IFD$="P"THENPRINT"[158][205]ASTER [196]ISK
  386. 3950 [139]D$[178]"" [167][153]"SYS(null)ORK STR$ISK
  387. 3960 PRINT" "L$L$
  388. 3970 PRINT"[154]  [196]ESKTOP[160][194]ORDER[160][208]G   ";
  389. 3980 PRINT"[212][210][160]="TR"[157]"," [211][197] ="SE
  390. 3990 GOSUB1810:REM CHK LEGAL SECTOR
  391. 4000 IFIS=0THEN4030
  392. 4010 PRINT" [145][145]"L$L$"":PRINT" "L$L$
  393. 4020 D=12:M=9:GOSUB1260:GOTO4250
  394. 4030 PRINT" "L$L$
  395. 4040 GOSUB1590:REM INIT IO
  396. 4050 GOSUB1720:P=0:GOSUB1780:REM U1/B-P
  397. 4060 GET#2,A$,B$
  398. 4070 TV=ASC(A$+NL$):SV=ASC(B$+NL$)
  399. 4080 IF TV<>0 OR SV<>255 THEN BD=1
  400. 4090 FOR P=2 TO 226 STEP 32
  401. 4100 GOSUB1780:GET#2,A$:REM B-P
  402. 4110 IF ASC(A$+NL$)=0 THEN 4150
  403. 4120 CT=CT+1
  404. 4130 GET#2,A$,B$,F$(CT-1)
  405. 4140 FORY=1TO15:GET#2,A$:F$(CT-1)=F$(CT-1)+A$:NEXT
  406. 4150 NEXTP:GOSUB1660:REM DONE IO
  407. 4160 PRINT"[198]ILES ON [196]ESKTOP [194]ORDER -";
  408. 4170 IF CT=0 THEN PRINT " [206][207][206][197]":GOTO4200
  409. 4180 PRINT CT
  410. 4190 PRINT:FORX=1TOCT:PRINTX;F$(X-1):NEXT
  411. 4200 IF BD<>1 THEN D=CT+14:M=0:GOSUB1260:RUN
  412. 4210 PRINT"       [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]
  413. 4220 [153]  "       (null) CLRSTR$VAL(null)(null)(null)(null)(null)CLOSEPEEK(null)(null)STR$VAL(null)CLOSELEN(null)(null)(null)(null)(null)(null) (null)
  414. 4230 PRINT"       [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][154]
  415. 4240 [139] CT[178]0 [167] 4310
  416. 4250 [153]"CONT     (null)OU HAVE A PROBLEM TOO SERIOUS FOR"
  417. 4260 [153]"ME TO ADDRESS.  RIGHT$T MIGHT BE POSSIBLE TO"
  418. 4270 [153]"SALVAGE PARTS OF YOUR DISK IF YOU START"
  419. 4280 [153]"NOW.  (null)SE A CHR$(null)(null)STR$ SECTOR EDITOR AND ...."
  420. 4290 [153]"                   CHR$(null)(null)STR$ (null)(null)LEN(null)CLOSE!!!ONON
  421. 4300 STOP
  422. 4310 PRINT "[156]     [217]OU HAVE"CT"FILES ON THE [196]ESKTOP"
  423. 4320 PRINT "[156][194]ORDER.  [215]OULD YOU LIKE TO [197][210][193][211][197] [156]IT ? ";
  424. 4330 FORX=1TO2
  425. 4340 IF X=1 THEN PRINT"[219][157]";
  426. 4350 IF X=2 THEN PRINT"+[157]";
  427. 4360 FORY=1TO70:GETA$
  428. 4370 IF A$=""THEN NEXT:NEXT:GOTO4330
  429. 4380 IF A$="_"THEN RUN
  430. 4390 IFA$<>"Y"THEN RUN
  431. 4400 PRINT:PRINT"";
  432. 4410 REM GEODEFORMAT
  433. 4420 TR=18:SE=0
  434. 4430 GOSUB1590:REM INIT IO
  435. 4440 GOSUB1720:P=171:GOSUB1780:REM U1/B-P
  436. 4450 FORI=171TO191:PRINT#2,NL$;:NEXT
  437. 4460 GOSUB1750:REM U2
  438. 4470 GOSUB1660:REM DONE IO
  439. 4480 GOSUB1480:REM CLOSE/OPEN/READ/PRINT
  440. 4490 D=23:M=10:GOSUB1260:RUN
  441.